package com.hsgene.user.service;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.user.dto.login.ManagerLoginDto;
import com.hsgene.user.dto.login.UserLoginInfoDto;
import com.hsgene.user.dto.login.WeChatBindingRequestDto;
import com.hsgene.user.dto.login.WeChatLoginResponseDto;
import com.hsgene.user.dto.user.GeneticTestingUserDto;
import com.hsgene.user.dto.user.manager.ManagerDto;

/**
 * 用户登录Service
 *
 * @author wangbing
 * @version 1.0, 2018/7/2
 */
public interface LoginService {

    /**
     * 根据id获取用户信息
     *
     * @param id 用户id
     * @return
     */
    ApiResult userById(String id);

    /**
     * 平台用户账号登录
     *
     * @param loginInfo 登录信息
     * @return 登录结果
     */
    ApiResult<GeneticTestingUserDto> login(UserLoginInfoDto loginInfo);

    /**
     * 微信登录
     *
     * @param code 微信登录code
     * @return 登录结果
     */
    ApiResult<WeChatLoginResponseDto> wechatLogin(String code);

    /**
     * 微信绑定用户手机号
     *
     * @param bindingRequest 绑定请求信息
     * @return 绑定结果（绑定成功则自动登录）
     */
    ApiResult<GeneticTestingUserDto> wechatBinding(WeChatBindingRequestDto bindingRequest);
}
